Configuración de Metadatos
Esta guía le muestra cómo configurar metadatos para las imágenes de la cámara OV80i. Los metadatos son información personalizada que se almacena con cada imagen capturada, ayudándole a rastrear detalles importantes como números de parte, números de serie o datos de producción.
Cuándo usar metadatos: Seguimiento de la producción, identificación de partes, registros de control de calidad, información de lote, identificación del operador, o cualquier dato personalizado que necesite asociar con las imágenes de inspección.
Prerrequisitos
- Sistema de cámara OV80i configurado y conectado
- Receta activa configurada con configuración de imágenes e inspección
- Al menos un bloque IA (clasificación o segmentación) configurado
- Comprensión de los datos que desea rastrear a partir de los resultados de la inspección
¿Qué son los Metadatos?
Los metadatos son información adicional que se adjunta a cada imagen capturada. Esta información:
- Se almacena junto a la imagen en la biblioteca de la cámara
- Aparece en la HMI para que los operadores lo vean
- Ayuda a identificar y rastrear piezas específicas o lotes de producción
- Puede buscarse en la biblioteca para análisis
Ejemplos de metadatos útiles:
- Números de parte (p. ej., "P12345")
- Números de serie (p. ej., "SN987654")
- Nombres de operador (p. ej., "John_Smith")
- Información de turno (p. ej., "A_Shift")
- Números de lote (p. ej., "Batch_2025_001")
Los metadatos solo pueden guardarse cuando se haya completado una inspección. Los metadatos deben formar parte del flujo que comienza desde "All Block Outputs" después de que la cámara capture y procese una imagen.
Paso 1: Acceder al Editor de Node-RED
1.1 Navegar al IO Block
- Abre tu receta activa en el Recipe Editor
- Haz clic en Configure IO o selecciona IO Block en el menú de migas de pan para entrar al editor de Node-RED
1.2 Verificar la Interfaz de Node-RED
Punto de control: Debe verse el editor de flujo de Node-RED con el flujo IO Block existente y la paleta de nodos en el lado izquierdo.
Paso 2: Localizar el Nodo "All Block Outputs"
2.1 Encontrar el Punto de Inicio
En tu flujo de Node-RED, busca el nodo "All Block Outputs". Este es el punto de inicio que recibe datos de la cámara después de que se activa y procesa una inspección.
El nodo "All Block Outputs":
- Contiene resultados de inspección de todos los bloques IA
- Incluye información de captura de imágenes
- Proporciona los datos necesarios para la creación de metadatos
- Es la fuente que alimenta tanto metadatos como las decisiones de Pass/Fail
2.2 Entender la Estructura del Flujo
Tu flujo debe seguir este patrón:
Camera Trigger → AI Processing → All Block Outputs → [Your Custom Logic]
Desde "All Block Outputs" necesitas dos rutas separadas:
- Ruta de Metadatos: All Block Outputs → Function (Create Metadata) → Capture Metadata
- Ruta de Decisión: All Block Outputs → Function (Logic) → Final Pass/Fail
Tanto los metadatos como las decisiones de Pass/Fail deben ramificarse desde el nodo "All Block Outputs".
Paso 3: Añadir el Nodo Capture Metadata
3.1 Localizar el Nodo de Metadatos
- Encuentra el nodo "Capture Metadata" en el panel izquierdo (sección Overview)
- Arrastra el nodo "Capture Metadata" al lienzo del flujo
- Colóquelo en su flujo después del disparador pero antes de la captura de imágenes
3.2 Colocación del Nodo en el Flujo
Estructura correcta del flujo:
All Block Outputs → Function (Create Metadata) → Capture Metadata
↓
Function (Pass/Fail Logic) → Final Pass/Fail
El nodo "Final Pass/Fail" es requerido para que el flujo funcione correctamente. Cada flujo debe terminar con este nodo.
Paso 4: Configurar Campos de Metadatos
4.1 Configurar Metadatos Básicos
- Haga doble clic en el nodo Capture Metadata
- Configúrelos: los campos de metadatos que desea rastrear
- Configúrelas: fuentes de datos para cada campo
4.2 Requisitos de Formato de Metadatos
Los metadatos deben estar formateados como un objeto con:
- Claves de tipo cadena - Los nombres de campo deben ser texto
- Valores de tipo cadena o numérico - Los datos pueden ser texto o números
Ejemplo de formato correcto:
{
"part_number": "P12345",
"serial_number": "SN987654",
"operator": "John_Smith",
"shift": "A",
"quantity": 100,
"temperature": 23.5
}
Paso 5: Crear Nodo de Función de Metadatos
5.1 Añadir Nodo de Función para la Creación de Metadatos
- Añada un nodo "function" entre "All Block Outputs" y el nodo "Capture Metadata"
- Haga doble clic en el nodo de función para configurarlo
- Esta función extraerá datos de los resultados de la inspección y creará metadatos
5.2 Extraer Datos de All Block Outputs
El nodo "All Block Outputs" proporciona datos de inspección detallados. Así es como se extraen:
// Extract data from inspection results
const captureId = msg.payload.capture_id;
const serialNumber = msg.payload.serial_number || "No_Serial";
const inspectionTime = msg.payload.inspection_time || new Date().toISOString();
// Create metadata from inspection data
msg.payload = {
"capture_id": captureId,
"serial_number": serialNumber,
"inspection_time": inspectionTime,
"operator": global.get("current_operator") || "Unknown"
};
return msg;
5.3 Metadatos estáticos (valores fijos)
Para información que no cambia durante la producción:
// Set static metadata values
msg.payload = {
"recipe_name": "Bolt_Inspection_v2",
"line_number": "Line_3",
"shift": "A_Shift",
"station": "QC_Station_1"
};
return msg;
5.4 Metadatos dinámicos (usando datos de inspección)
Para información que proviene de los resultados de inspección:
// Extract inspection data
const captureId = msg.payload.capture_id;
const imageUrl = msg.payload.image_url;
const predictions = msg.payload.classification?.predictions || [];
// Create dynamic metadata
msg.payload = {
"capture_id": captureId,
"part_number": "P" + Date.now(),
"total_rois": predictions.length,
"timestamp": new Date().toISOString(),
"batch": global.get("current_batch") || "Default_Batch"
};
return msg;
Paso 6: Conectar Metadatos y Flujos de Aprobado/Rechazo
6.1 Estructura de Flujo Requerida
Cada flujo debe tener ambas rutas desde "All Block Outputs":
All Block Outputs → Function (Create Metadata) → Capture Metadata
↓
Function (Pass/Fail Logic) → Final Pass/Fail
6.2 Conectar la Ruta de Metadatos
- Conecte la salida de "All Block Outputs" a la entrada de la función de metadatos
- Conecte la salida de la función de metadatos a la entrada de "Capture Metadata"
- El nodo Capture Metadata puede ser un nodo terminal (no se necesita conexión de salida)
6.3 Conectar la Ruta de Aprobado/Rechazo
- Conecte la salida de "All Block Outputs" a una función de lógica de aprobación/rechazo
- Conecte la salida de la función de lógica a la entrada de "Final Pass/Fail"
- El nodo "Final Pass/Fail" es obligatorio - cada flujo debe terminar aquí
6.4 Lógica de Pass/Fail de Ejemplo
// Extract inspection result for pass/fail decision
const predictions = msg.payload.classification?.predictions || [];
// Determine if inspection passed (all ROIs passed)
let passed = true;
for (let prediction of predictions) {
if (!prediction.predicted_class.includes("pass")) {
passed = false;
break;
}
}
// Set the pass/fail result
msg.payload = passed;
return msg;
Paso 7: Configuración de Metadatos de Prueba
7.1 Desplegar y Probar
- Haga clic en el botón "Deploy" (esquina superior derecha)
- Inicie una inspección utilizando su método de disparo configurado (manual, entrada digital o PLC)
- Verifique que:
- Se capturó una imagen
- Los metadatos aparecen con la imagen
- Se tomó la decisión de Pass/Fail
- El flujo se completó correctamente
7.2 Verificar Flujo Completo
Verifique que ambos caminos funcionen:
Ruta de Metadatos:
- Navegue a Library en la interfaz principal
- Encuentre su imagen de prueba
- Verifique que los metadatos aparezcan en los detalles de la imagen
Ruta de Pass/Fail:
- Verifique que los resultados de la inspección muestren el estado Pass/Fail
- Verifique que el nodo "Final Pass/Fail" se haya procesado correctamente
- Confirme que cualquier salida conectada (PLCs, indicadores) responda adecuadamente
7.3 Probar Diferentes Fuentes de Disparador
Verifique que los metadatos funcionen con su disparador específico:
Para Disparadores Manuales:
- Utilice el botón de disparo por software
- Verifique que los metadatos aparezcan con cada captura manual
Para Disparadores de Entrada Digital:
- Active un sensor/interruptor externo
- Confirme que los metadatos se capturen con las imágenes disparadas
Para Disparadores PLC:
- Envíe la señal de disparo desde el PLC
- Verifique que los metadatos incluyan datos del PLC, si corresponde
Paso 8: Configuraciones Avanzadas de Metadatos
8.1 Metadatos de Múltiples Variables Globales
Combine datos de diferentes fuentes almacenadas globalmente:
// Combine data from various global storage
const operatorData = global.get("operator_info") || {};
const productData = global.get("product_info") || {};
const shiftData = global.get("shift_info") || {};
msg.payload = {
"operator": operatorData.name || "Unknown",
"operator_id": operatorData.id || "000",
"product_code": productData.code || "Default",
"product_version": productData.version || "1.0",
"shift": shiftData.current || "Day",
"line_status": "Running",
"timestamp": new Date().toISOString()
};
return msg;
Paso 9: Solución de Problemas de Metadatos
9.1 Problemas Comunes
| Problema | Síntomas | Solución |
|---|---|---|
| Metadatos no aparecen | Sin datos en Library | Verifique que el nodo de metadatos esté en el flujo IO Block principal |
| Metadatos con imagen incorrecta | Los datos aparecen con capturas incorrectas | Verifique la sincronización: los metadatos deben estar antes de la captura de la imagen |
| Disparador no funciona | No se capturan imágenes | Verifique la configuración del disparador IO Block |
| Campos de metadatos ausentes | Faltan algunos datos | Verifique el formato de la carga útil del nodo de función |
| Error de tipo de dato incorrecto | El nodo muestra un estado de error | Asegúrese de que los valores sean solo cadenas o números |
9.2 Depurar Flujo de Metadatos
Agregue nodos de depuración para solucionar problemas:
- Agregar un nodo de depuración después del disparador para verificar que funciona
- Agregar un nodo de depuración después de la función de metadatos para verificar la carga útil
- Agregar un nodo de depuración después de Capture Metadata para confirmar el procesamiento
- Verifique el panel de depuración para mensajes de error
Paso 10: Mejores Prácticas
10.1 Diseño de Flujo
Diseñe flujos de metadatos eficientes:
- Mantenga los metadatos al inicio del flujo - Configure los metadatos inmediatamente después del disparador
- Utilice un único nodo de metadatos - No duplique nodos Capture Metadata
- Mantenga la continuidad del flujo - Los metadatos deben formar parte del flujo principal de inspección
- Gestione los datos ausentes - Siempre proporcione valores predeterminados
10.2 Nomenclatura de Campos de Metadatos
Utilice nombres de campos consistentes y claros:
- Use guiones bajos en lugar de espacios ("part_number" en lugar de "part number")
- Sea descriptivo pero conciso ("operator" no "op")
- Use minúsculas para mayor consistencia
- Evite caracteres especiales que puedan causar problemas
10.3 Consideraciones de Rendimiento
Para una producción de alto volumen:
- Minimice el tamaño de metadatos - Incluya solo la información necesaria
- Utilice tipos de datos eficientes - Números cuando sea posible, cadenas cortas
- Evite procesamiento complejo - Mantenga la creación de metadatos simple y rápida
- Cachee datos globales - Almacene datos de uso frecuente en variables globales
¡Éxito! Su sistema de metadatos está listo
La configuración de metadatos puede ahora:
✅ Adjuntar información personalizada a cada captura de imagen disparada
✅ Rastrear datos de producción sincronizados con el flujo de inspección
✅ Almacenar información buscable en la biblioteca de la cámara
✅ Mostrar datos relevantes en el HMI para operadores
✅ Soportar trazabilidad para los requisitos de fabricación
Mantenimiento continuo
Verificaciones periódicas del sistema
- Verifique que los metadatos aparezcan con las capturas disparadas
- Verifique la presencia de datos faltantes en las ejecuciones de producción
- Monitoree el rendimiento del flujo con altas tasas de disparo
- Actualice los campos de metadatos conforme cambien los requisitos
Gestión del Flujo
- Revise la temporización de metadatos en producción
- Optimice el rendimiento de los nodos de función
- Actualice la gestión de variables globales
- Capacite a los operadores en operación basada en disparos
Próximos pasos
Después de configurar metadatos basados en disparos:
- Probar con todos los tipos de disparo configurados (manual, digital, PLC)
- Capacitar a los operadores en el uso adecuado de disparadores para la captura de metadatos
- Configurar la gestión de variables globales para datos dinámicos
- Crear plantillas de metadatos para diferentes líneas de producto
- Implementar monitoreo de producción mediante analítica de metadatos